/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package wasolicitudesfiec.consultas.convalidacionMateria;

import entidad.convalidacionMateria.Solicitudconvalidacionmateria;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Vector;

/**
 *
 * @author kabad
 */
public class ConsultasSolicitudconvalidacionmateria {

    private Connection con;

    public Solicitudconvalidacionmateria HLnuevoSolicitudconvalidacionmateria(Solicitudconvalidacionmateria val) throws SQLException {
        return nuevoSolicitudconvalidacionmateria(val.getAConvalidar(), val.getEstado(), val.getFechacreacion(), val.getFechamodificacion(), val.getFkIdEstudiante(), val.getFkIdMateria(), val.getFkIdProfesor(), val.getFkIdSubDecano(), val.getFkParent(), val.getInforme(), val.getNombreArchivo(), val.getNombreinstanciaproceso(), val.getObservacionEstudiante(), val.getObservacionProfesor(), val.getObservacionSubDecano(), val.getPathArchivoAdjunto(), val.getResolucion(), val.getResultadoEvaluacion(), val.getFkIdSecretaria());
    }

    public Solicitudconvalidacionmateria leerSolicitudconvalidacionmateria(int idSolicitudConvalidacion) throws SQLException {
        Solicitudconvalidacionmateria reg = new Solicitudconvalidacionmateria();

        PreparedStatement proc = con.prepareStatement(
                "call leerSolicitudconvalidacionmateria(?) ");
        proc.setInt(1, idSolicitudConvalidacion);
        ResultSet rs = proc.executeQuery();
        if (rs.next()) {
            reg.setAConvalidar(rs.getString(1));
            reg.setEstado(rs.getString(2));
            reg.setFechacreacion(rs.getTimestamp(3));
            reg.setFechamodificacion(rs.getTimestamp(4));
            reg.setFkIdEstudiante(rs.getInt(5));
            reg.setFkIdMateria(rs.getInt(6));
            reg.setFkIdProfesor(rs.getInt(7));
            reg.setFkIdSubDecano(rs.getInt(8));
            reg.setFkParent(rs.getInt(9));
            reg.setIdSolicitudConvalidacion(rs.getInt(10));
            reg.setInforme(rs.getString(11));
            reg.setNombreArchivo(rs.getString(12));
            reg.setNombreinstanciaproceso(rs.getString(13));
            reg.setObservacionEstudiante(rs.getString(14));
            reg.setObservacionProfesor(rs.getString(15));
            reg.setObservacionSubDecano(rs.getString(16));
            reg.setPathArchivoAdjunto(rs.getString(17));
            reg.setResolucion(rs.getString(18));
            reg.setResultadoEvaluacion(rs.getString(19));
            reg.setFkIdSecretaria(rs.getInt(20));
        } else {
            reg = null;
        }
        return reg;


    }

    public boolean HLmodificarSolicitudconvalidacionmateria(Solicitudconvalidacionmateria val) throws SQLException {
        return modificarSolicitudconvalidacionmateria(val.getAConvalidar(), val.getEstado(), val.getFechacreacion(), val.getFechamodificacion(),
                val.getFkIdEstudiante(), val.getFkIdMateria(), val.getFkIdProfesor(), val.getFkIdSubDecano(), val.getFkParent(), 
                val.getIdSolicitudConvalidacion(), val.getInforme(), val.getNombreArchivo(), val.getNombreinstanciaproceso(), 
                val.getObservacionEstudiante(), val.getObservacionProfesor(), val.getObservacionSubDecano(), val.getPathArchivoAdjunto(), 
                 val.getResolucion(), val.getResultadoEvaluacion(), val.getFkIdSecretaria());
    }

    public boolean eliminarSolicitudconvalidacionmateria(int idSolicitudConvalidacion) throws SQLException {
        boolean exitoOperacion = true;

        PreparedStatement proc = con.prepareStatement(
                "call eliminarSolicitudconvalidacionmateria(?) ");
        proc.setInt(1, idSolicitudConvalidacion);
        proc.execute();
        return exitoOperacion;


    }

    public Solicitudconvalidacionmateria HLleerSolicitudconvalidacionmateria(Solicitudconvalidacionmateria val) throws SQLException {
        return leerSolicitudconvalidacionmateria(val.getIdSolicitudConvalidacion());
    }

    public Solicitudconvalidacionmateria leerSolicitudconvalidacionmateria(int idEstudiante, String estado, int idMateria) throws SQLException {
        Solicitudconvalidacionmateria reg = new Solicitudconvalidacionmateria();

        PreparedStatement proc = con.prepareStatement(
                "call leerSolicitudconvalidacionmateriaPorMateriaEstudiante(?,?,?) ");
        proc.setInt(1, idEstudiante);
        proc.setString(2, estado);
        proc.setInt(3, idMateria);
        ResultSet rs = proc.executeQuery();
        if (rs.next()) {
            reg.setAConvalidar(rs.getString(1));
            reg.setEstado(rs.getString(2));
            reg.setFechacreacion(rs.getTimestamp(3));
            reg.setFechamodificacion(rs.getTimestamp(4));
            reg.setFkIdEstudiante(rs.getInt(5));
            reg.setFkIdMateria(rs.getInt(6));
            reg.setFkIdProfesor(rs.getInt(7));
            reg.setFkIdSubDecano(rs.getInt(8));
            reg.setFkParent(rs.getInt(9));
            reg.setIdSolicitudConvalidacion(rs.getInt(10));
            reg.setInforme(rs.getString(11));
            reg.setNombreArchivo(rs.getString(12));
            reg.setNombreinstanciaproceso(rs.getString(13));
            reg.setObservacionEstudiante(rs.getString(14));
            reg.setObservacionProfesor(rs.getString(15));
            reg.setObservacionSubDecano(rs.getString(16));
            reg.setPathArchivoAdjunto(rs.getString(17));
            reg.setResolucion(rs.getString(18));
            reg.setResultadoEvaluacion(rs.getString(19));
            reg.setFkIdSecretaria(rs.getInt(20));
        } else {
            reg = null;
        }
        return reg;


    }

    public Vector<Solicitudconvalidacionmateria> leerVariosSolicitudconvalidacionmateria() throws SQLException {
        Vector<Solicitudconvalidacionmateria> datos = new Vector<Solicitudconvalidacionmateria>();
        Solicitudconvalidacionmateria reg;

        PreparedStatement proc = con.prepareStatement(
                "call leerVariosSolicitudconvalidacionmateria() ");
        ResultSet rs = proc.executeQuery();
        while (rs.next()) {
            reg = new Solicitudconvalidacionmateria();
            reg.setAConvalidar(rs.getString(1));
            reg.setEstado(rs.getString(2));
            reg.setFechacreacion(rs.getTimestamp(3));
            reg.setFechamodificacion(rs.getTimestamp(4));
            reg.setFkIdEstudiante(rs.getInt(5));
            reg.setFkIdMateria(rs.getInt(6));
            reg.setFkIdProfesor(rs.getInt(7));
            reg.setFkIdSubDecano(rs.getInt(8));
            reg.setFkParent(rs.getInt(9));
            reg.setIdSolicitudConvalidacion(rs.getInt(10));
            reg.setInforme(rs.getString(11));
            reg.setNombreArchivo(rs.getString(12));
            reg.setNombreinstanciaproceso(rs.getString(13));
            reg.setObservacionEstudiante(rs.getString(14));
            reg.setObservacionProfesor(rs.getString(15));
            reg.setObservacionSubDecano(rs.getString(16));
            reg.setPathArchivoAdjunto(rs.getString(17));
            reg.setResolucion(rs.getString(18));
            reg.setResultadoEvaluacion(rs.getString(19));
            reg.setFkIdSecretaria(rs.getInt(20));
            datos.add(reg);
        }//end while

        return datos;


    }

    public boolean HLeliminarSolicitudconvalidacionmateria(Solicitudconvalidacionmateria val) throws SQLException {
        return eliminarSolicitudconvalidacionmateria(val.getIdSolicitudConvalidacion());
    }

    public Vector<Solicitudconvalidacionmateria> HLleerVariosSolicitudconvalidacionmateria(Solicitudconvalidacionmateria val) throws SQLException {
        return leerVariosSolicitudconvalidacionmateria();
    }

    public void setConexion(Connection con) {
        this.con = con;
    }

    public Solicitudconvalidacionmateria nuevoSolicitudconvalidacionmateria(String aConvalidar, String estado, Timestamp fechacreacion, 
            Timestamp fechamodificacion, int fkIdEstudiante, int fkIdMateria, int fkIdProfesor, int fkIdSubDecano, int fkParent, String informe, 
            String nombreArchivo, String nombreinstanciaproceso, String observacionEstudiante, String observacionProfesor, 
            String observacionSubDecano, String pathArchivoAdjunto, String resolucion, String resultadoEvaluacion, int fkIdSecretaria) throws SQLException {
        Solicitudconvalidacionmateria reg = new Solicitudconvalidacionmateria();

        PreparedStatement proc = con.prepareStatement(
                "call nuevoSolicitudconvalidacionmateria(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ");
        proc.setString(1, aConvalidar);
        proc.setString(2, estado);
        proc.setTimestamp(3, fechacreacion);
        proc.setTimestamp(4, fechamodificacion);
        proc.setInt(5, fkIdEstudiante);
        proc.setInt(6, fkIdMateria);
        proc.setInt(7, fkIdProfesor);
        proc.setInt(8, fkIdSubDecano);
        proc.setInt(9, fkParent);
        proc.setString(10, informe);
        proc.setString(11, nombreArchivo);
        proc.setString(12, nombreinstanciaproceso);
        proc.setString(13, observacionEstudiante);
        proc.setString(14, observacionProfesor);
        proc.setString(15, observacionSubDecano);
        proc.setString(16, pathArchivoAdjunto);
        proc.setString(17, resolucion);
        proc.setString(18, resultadoEvaluacion);
        proc.setInt(19, fkIdSecretaria);
        
        ResultSet rs = proc.executeQuery();
        if (rs.next()) {
            reg.setAConvalidar(rs.getString(1));
            reg.setEstado(rs.getString(2));
            reg.setFechacreacion(rs.getTimestamp(3));
            reg.setFechamodificacion(rs.getTimestamp(4));
            reg.setFkIdEstudiante(rs.getInt(5));
            reg.setFkIdMateria(rs.getInt(6));
            reg.setFkIdProfesor(rs.getInt(7));
            reg.setFkIdSubDecano(rs.getInt(8));
            reg.setFkParent(rs.getInt(9));
            reg.setIdSolicitudConvalidacion(rs.getInt(10));
            reg.setInforme(rs.getString(11));
            reg.setNombreArchivo(rs.getString(12));
            reg.setNombreinstanciaproceso(rs.getString(13));
            reg.setObservacionEstudiante(rs.getString(14));
            reg.setObservacionProfesor(rs.getString(15));
            reg.setObservacionSubDecano(rs.getString(16));
            reg.setPathArchivoAdjunto(rs.getString(17));
            reg.setResolucion(rs.getString(18));
            reg.setResultadoEvaluacion(rs.getString(19));
            reg.setFkIdSecretaria(rs.getInt(20));

        } else {
            reg = null;
        }
        return reg;


    }

    public boolean modificarSolicitudconvalidacionmateria(String aConvalidar, String estado, Timestamp fechacreacion, Timestamp fechamodificacion, 
            int fkIdEstudiante, int fkIdMateria, int fkIdProfesor, int fkIdSubDecano, int fkParent, int idSolicitudConvalidacion, String informe,
            String nombreArchivo, String nombreinstanciaproceso, String observacionEstudiante, String observacionProfesor, 
            String observacionSubDecano, String pathArchivoAdjunto, String resolucion, String resultadoEvaluacion, int fkIdSecretaria) throws SQLException {
        boolean exitoOperacion = true;

        PreparedStatement proc = con.prepareStatement(
                "call modificarSolicitudconvalidacionmateria(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ");
        proc.setString(1, aConvalidar);
        proc.setString(2, estado);
        proc.setTimestamp(3, fechacreacion);
        proc.setTimestamp(4, fechamodificacion);
        proc.setInt(5, fkIdEstudiante);
        proc.setInt(6, fkIdMateria);
        proc.setInt(7, fkIdProfesor);
        proc.setInt(8, fkIdSubDecano);
        proc.setInt(9, fkParent);
        proc.setInt(10, idSolicitudConvalidacion);
        proc.setString(11, informe);
        proc.setString(12, nombreArchivo);
        proc.setString(13, nombreinstanciaproceso);
        proc.setString(14, observacionEstudiante);
        proc.setString(15, observacionProfesor);
        proc.setString(16, observacionSubDecano);
        proc.setString(17, pathArchivoAdjunto);
        proc.setString(18, resolucion);
        proc.setString(19, resultadoEvaluacion);
        proc.setInt(20, fkIdSecretaria);
        proc.execute();
        return exitoOperacion;


    }
}